package edu.gdkm.ssm.service;

import edu.gdkm.ssm.domain.Permission;
import edu.gdkm.ssm.domain.Role;

import java.util.List;

public interface IRoleService {

    /**
     * 查询所有角色信息
     * @return 所有角色信息
     */
    List<Role> findAll();

    /**
     * 添加新角色信息
     * @param role  角色信息
     */
    void save(Role role);

    /**
     * 获取当前用户可以添加的角色信息
     * @param id 当前用户的id
     * @return
     */
    List<Role> findOtherRole(String id);

    /**
     * 根据角色id查找角色信息
     * @param roleId 角色id
     * @return 角色信息
     */
    Role findById(String roleId);

    /**
     * 给当前角色查找其他可添加的权限资源
     * @param roleId 当前角色id
     * @return 其他可添加的权限资源
     */
    List<Permission> findOtherPermissions(String roleId);

    /**
     * 给当前角色添加多个权限资源
     * @param roleId 角色id
     * @param permissionIds 权限资源id
     */
    void addPermissionToRole(String roleId, String[] permissionIds);

    /**
     * 删除当前角色信息
     * @param roleId 角色id
     */
    void deleteRoleById(String roleId);
}
